{ tcsetattr (STDIN_FILENO, TCSANOW, &saved_attributes); }
void set_input_mode (void) { struct termios tattr; char *name;
/* Make sure stdin is a terminal. */ if (!isatty (STDIN_FILENO)) { fprintf (stderr, "Not a terminal.\n"); exit (EXIT_FAILURE); }
/* Save the terminal attributes so we can restore them later. */ tcgetattr (STDIN_FILENO, &saved_attributes); atexit (reset_input_mode);
/* Set the funny terminal modes. */ tcgetattr (STDIN_FILENO, &tattr); tattr.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO. */ tattr.c_cc[VMIN] = 1; tattr.c_cc[VTIME] = 0; tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr); }
int main (void) { char c;
set_input_mode ();
while (1) { read (STDIN_FILENO, &c, 1); if (c == ’\004’) /* C-d */ break; else putchar (c); }
return EXIT_SUCCESS; }
This document was generated on November 5, 2024 using texi2html 5.0.